#include <iostream>
#include <vector>
using namespace std;
const int N=20;

int cpn[N][4];
int dp[N][N];
int ret[N];
int main()
{
	int n,m;
	cin>>n>>m;
	
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			cin>>cpn[i][j];
	
	for(int i=1;i<=n;i++)
	{
		for(int j=0;j<=m;j++)
		{
			dp[i][j]=dp[i-1][j];
			for(int z=0;z<=j;z++)
			{
				
				if(j>=z)
				{
					dp[i][j]=max(dp[i][j],dp[i-1][j-z]+cpn[i][z]);
				}
			}
		}
	}
	cout<<dp[n][m]<<endl;
	int j=m;
	for(int i=n;i>=1;i++)
	{
		for(int k=0;k<=j;k++)
		{
			if(dp[i][j] == dp[i-1][j-k]+cpn[i][k])
			{
				ret[i]=k;
				j-=k;
				break;
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		cout<<i<<' '<<ret[i]<<endl;
	}
	return 0;
}
